The present invention relates generally to knowledge based systems. Knowledge based systems, which are sometimes referred to as expert systems, utilize a knowledge base of information to perform or facilitate an application/business process. Essentially, the goal of a knowledge based system is to mimic the thought process that an expert in a particular field would utilize to address tasks in that field. Knowledge based systems can be employed in a wide variety of settings. For example, bank loan officers use such systems for guidance in approving and rejecting loan applications. The military may use knowledge based systems to analyze battlefield conditions and make tactical suggestions. Other examples of disciplines in which knowledge based systems can be used include automobile repair, medical diagnosis, oil exploration, financial planning, chemical analysis, surgery, locomotive repair, weather prediction, computer repair, computer system configuration, operation of nuclear plants, interpreting government regulations, tax preparation, as well as many others.
To implement a knowledge based system, the first action is often to map out the activities of the application or business workflow/process being addressed. Any of the process activities that are receptive to computerized automation or assistance can thereafter be implemented in a knowledge based system. In general, this is accomplished by obtaining information regarding how those knowledgeable in that field would accomplish the particular process activity being addressed, and decompiling that information to create a knowledge base. This information typically includes logical thought processes that are utilized to perform tasks, decision points that may be encountered, and information necessary to resolve these decision points to select proper courses of action.
Several approaches can be utilized to implement process activities in a knowledge based system. One such approach is the “code-based” approach. The code-based approach involves computerized automation of a business process by creating application-specific software code using a programming language such as C or Java. Unfortunately, this approach is limiting in its extensibility and adaptability since changes to the business/application process activity could require significant changes to the original software code, which may be prone to the introduction to new errors into the code, inefficient because the software code must be changed and recompiled, and difficult in certain situations—especially if the original programmers or adequate documentation are no longer available.
An alternate approach is the “rules-based” approach, which is performed by configuring a set of rules directed to the application/business process activity and applying the ruleset using a rules engine. The set of steps of the application/business process activity could be represented as a “ruleflow,” and each ruleflow can be represented as a series of ruleflow elements such as tasks, events, subprocesses, loops, and branches. Under this approach, additions, extensions, and modifications to the business process activity can be implemented by changing rule entries in the corresponding ruleset(s) rather than recoding and recompiling application specific software code. An exemplary rules-based product embodying this approach is the Blaze Advisor™ product available from Blaze Software, Inc. of San Jose, Calif. The present invention is directed to an improved method and system for implementing rules and ruleflows.